from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):
    cost0 =0

    ratio = {}

    # 标记消耗，大于0为消耗，小于0为生成
    cost0 = 0

    def 基础百分比(self, 类型, 等级):
        if 类型 == '直伤':
            name = ''
        else:
            name = 类型
        百分比 = 0.0
        for i in range(0, 8):
            data = getattr(self, '{}data{}'.format(name, i), [])
            if 等级 < len(data) and 等级 > 0:
                hit = getattr(self, '{}hit{}'.format(name, i), 1)
                power = getattr(self, '{}power{}'.format(name, i), 1)
                cost = getattr(self, '{}cost{}'.format(name, i), 0)
                百分比 += data[等级] * hit * power * ((1+cost*self.ratio.get("标记", 0)) if cost > 0 else self.ratio.get("常规",1.0))
        return 百分比 * self.国服特色

    def 等效百分比(self, **argv):
        char = argv.get('char', {})

        skill = char.get_skill_by_name("猎物识别")

        self.ratio = {
            "常规": skill.常规加成(),
            "标记": skill.终结加成()
        }

        return super().等效百分比(**argv)


class 技能0(主动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    学习间隔 = 1
    等级精通 = 110
    是否主动 = 0
    TP成长 = 0.10
    TP上限 = 5

    关联技能 = ['急速扳机']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(被动技能):
    名称 = '重弩掌握'
    所在等级 = 1
    等级上限 = 1
    等级精通 = 1

    冷却关联技能 = ['所有']
    非冷却关联技能 = ['联合作战：围猎', '完美瞄准', '联合作战：终结战场']

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '重弩':
            return 1.0
        else:
            return 0.9


class 技能2(主动技能):
    名称 = '迅速射击'
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [16, 91]
    无色消耗 = 0
    data0 = [0, 377, 415, 453, 491, 530, 568, 606, 644, 683, 721, 759, 797, 836, 874, 912, 951, 989, 1027, 1065, 1104, 1142, 1180, 1218, 1257, 1295, 1333, 1371, 1410, 1448, 1486, 1524, 1563, 1601, 1639, 1677, 1716, 1754, 1792, 1830, 1869, 1907, 1945, 1983, 2022, 2060, 2098, 2137, 2175, 2213, 2251, 2290, 2328, 2366, 2404, 2443, 2481, 2519, 2557, 2596, 2634, 2672, 2710, 2749, 2787, 2825, 2863, 2902, 2940, 2978, 3016]
    hit0 = 5
    cost0 = -1
    TP成长 = 0.1
    TP上限 = 7


class 技能3(主动技能):
    名称 = '法尔克：快速定位'
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [16, 91]
    无色消耗 = 0
    data0 = [0, 1770, 1949, 2129, 2309, 2488, 2668, 2847, 3027, 3206, 3386, 3566, 3745, 3925, 4104, 4284, 4464, 4643, 4823, 5002, 5182, 5362, 5541, 5721, 5900, 6080, 6260, 6439, 6619, 6798, 6978, 7157, 7337, 7517, 7696, 7876, 8055, 8235, 8415, 8594, 8774, 8953, 9133, 9313, 9492, 9672, 9851, 10031, 10210, 10390, 10570, 10749, 10929, 11108, 11288, 11468, 11647, 11827, 12006, 12186, 12366, 12545, 12725, 12904, 13084, 13264, 13443, 13623, 13802, 13982, 14161]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能4(主动技能):
    名称 = '夜间射击'
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 5
    MP = [33, 187]
    无色消耗 = 0
    data0 = [0, 2172, 2392, 2613, 2833, 3054, 3274, 3495, 3715, 3935, 4156, 4376, 4597, 4817, 5037, 5258, 5478, 5699, 5919, 6139, 6360, 6580, 6801, 7021, 7241, 7462, 7682, 7903, 8123, 8344, 8564, 8784, 9005, 9225, 9446, 9666, 9886, 10107, 10327, 10548, 10768, 10988, 11209, 11429, 11650, 11870, 12090, 12311, 12531, 12752, 12972, 13192, 13413, 13633, 13854, 14074, 14295, 14515, 14735, 14956, 15176, 15397, 15617, 15837, 16058, 16278, 16499, 16719, 16939, 17160, 17380]
    hit0 = 1
    cost0 = 5
    TP成长 = 0.1
    TP上限 = 7


class 技能5(被动技能):
    名称 = '猎物识别'
    所在等级 = 15
    等级上限 = 20
    等级精通 = 10

    def 常规加成(self):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.05 + 0.02*self.等级

    def 终结加成(self):
        if self.等级 == 0:
            return 0.0
        else:
            return 0.055 + 0.005*self.等级


class 技能6(主动技能):
    名称 = '喷射器'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [65, 361]
    无色消耗 = 0
    data0 = [0, 734, 808, 883, 957, 1032, 1106, 1180, 1255, 1329, 1404, 1478, 1553, 1627, 1702, 1776, 1851, 1925, 2000, 2074, 2149, 2223, 2298, 2372, 2447, 2521, 2596, 2670, 2744, 2819, 2893, 2968, 3042, 3117, 3191, 3266, 3340, 3415, 3489, 3564, 3638, 3713, 3787, 3862, 3936, 4011, 4085, 4160, 4234, 4308, 4383, 4457, 4532, 4606, 4681, 4755, 4830, 4904, 4979, 5053, 5128, 5202, 5277, 5351, 5426, 5500, 5575, 5649, 5724, 5798, 5872]
    hit0 = 5
    cost0 = -1
    TP成长 = 0.1
    TP上限 = 7


class 技能7(主动技能):
    名称 = '法尔克：刃羽'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 6
    MP = [65, 361]
    无色消耗 = 0
    data0 = [0, 706, 777, 849, 921, 992, 1064, 1136, 1207, 1279, 1351, 1422, 1494, 1566, 1637, 1709, 1781, 1852, 1924, 1996, 2067, 2139, 2210, 2282, 2354, 2425, 2497, 2569, 2640, 2712, 2784, 2855, 2927, 2999, 3070, 3142, 3214, 3285, 3357, 3429, 3500, 3572, 3644, 3715, 3787, 3859, 3930, 4002, 4073, 4145, 4217, 4288, 4360, 4432, 4503, 4575, 4647, 4718, 4790, 4862, 4933, 5005, 5077, 5148, 5220, 5292, 5363, 5435, 5507, 5578, 5650]
    hit0 = 5
    cost0 = -1
    TP成长 = 0.1
    TP上限 = 7


class 技能8(主动技能):
    名称 = '高压喷射'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [81, 453]
    无色消耗 = 0
    data0 = [0, 989, 1090, 1190, 1290, 1391, 1491, 1592, 1692, 1792, 1893, 1993, 2094, 2194, 2294, 2395, 2495, 2596, 2696, 2796, 2897, 2997, 3098, 3198, 3298, 3399, 3499, 3600, 3700, 3800, 3901, 4001, 4102, 4202, 4302, 4403, 4503, 4603, 4704, 4804, 4905, 5005, 5105, 5206, 5306, 5407, 5507, 5607, 5708, 5808, 5909, 6009, 6109, 6210, 6310, 6411, 6511, 6611, 6712, 6812, 6913, 7013, 7113, 7214, 7314, 7415, 7515, 7615, 7716, 7816, 7917]
    hit0 = 1
    data1 = [0, 3958, 4360, 4761, 5163, 5564, 5966, 6368, 6769, 7171, 7572, 7974, 8376, 8777, 9179, 9580, 9982, 10384, 10785, 11187, 11588, 11990, 12392, 12793, 13195, 13596, 13998, 14400, 14801, 15203, 15604, 16006, 16408, 16809, 17211, 17612, 18014, 18415, 18817, 19219, 19620, 20022, 20423, 20825, 21227, 21628, 22030, 22431, 22833, 23235, 23636, 24038, 24439, 24841, 25243, 25644, 26046, 26447, 26849, 27251, 27652, 28054, 28455, 28857, 29259, 29660, 30062, 30463, 30865, 31267, 31668]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能9(主动技能):
    名称 = '急速扳机'
    所在等级 = 20
    等级上限 = 1
    等级精通 = 1
    CD = 4
    MP = [40, 40]
    无色消耗 = 0
    data0 = [0, 337]
    hit0 = 3
    cost0 = -1
    data1 = [0, 728]
    hit1 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能10(被动技能):
    名称 = '重弩精通'
    所在等级 = 20
    等级上限 = 20
    等级精通 = 10
    关联技能 = ['所有']

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.05 + 0.02 * self.等级


class 技能11(主动技能):
    名称 = '重型穿甲箭'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 7
    MP = [77, 428]
    无色消耗 = 0
    data0 = [0, 3960, 4362, 4764, 5165, 5567, 5969, 6371, 6773, 7174, 7576, 7978, 8380, 8782, 9183, 9585, 9987, 10389, 10791, 11192, 11594, 11996, 12398, 12800, 13201, 13603, 14005, 14407, 14809, 15210, 15612, 16014, 16416, 16818, 17219, 17621, 18023, 18425, 18827, 19228, 19630, 20032, 20434, 20836, 21237, 21639, 22041, 22443, 22845, 23246, 23648, 24050, 24452, 24854, 25255, 25657, 26059, 26461, 26863, 27264, 27666, 28068, 28470, 28872, 29273, 29675, 30077, 30479, 30881, 31282, 31684]
    hit0 = 1
    cost0 = 5
    TP成长 = 0.1
    TP上限 = 7


class 技能12(主动技能):
    名称 = '警告霰弹枪'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [99, 550]
    无色消耗 = 0
    data0 = [0, 1396, 1537, 1679, 1820, 1962, 2104, 2245, 2387, 2529, 2670, 2812, 2953, 3095, 3237, 3378, 3520, 3662, 3803, 3945, 4086, 4228, 4370, 4511, 4653, 4795, 4936, 5078, 5219, 5361, 5503, 5644, 5786, 5928, 6069, 6211, 6352, 6494, 6636, 6777, 6919, 7061, 7202, 7344, 7485, 7627, 7769, 7910, 8052, 8194, 8335, 8477, 8618, 8760, 8902, 9043, 9185, 9327, 9468, 9610, 9751, 9893, 10035, 10176, 10318, 10460, 10601, 10743, 10884, 11026, 11168]
    hit0 = 5
    cost0 = -5
    TP成长 = 0.1
    TP上限 = 7


class 技能13(主动技能):
    名称 = '法尔克：搅乱战场'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 8
    MP = [99, 550]
    无色消耗 = 0
    data0 = [0, 1118, 1232, 1345, 1459, 1572, 1686, 1799, 1913, 2026, 2140, 2253, 2367, 2480, 2594, 2707, 2821, 2934, 3048, 3161, 3275, 3388, 3502, 3615, 3729, 3843, 3956, 4070, 4183, 4297, 4410, 4524, 4637, 4751, 4864, 4978, 5091, 5205, 5318, 5432, 5545, 5659, 5772, 5886, 5999, 6113, 6226, 6340, 6453, 6567, 6680, 6794, 6907, 7021, 7134, 7248, 7361, 7475, 7588, 7702, 7815, 7929, 8042, 8156, 8269, 8383, 8496, 8610, 8723, 8837, 8950]
    hit0 = 6
    cost0 = -1
    TP成长 = 0.1
    TP上限 = 7


class 技能14(主动技能):
    名称 = '焰光弩箭'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 15
    MP = [219, 1220]
    无色消耗 = 1
    data0 = [0, 2228, 2454, 2680, 2906, 3133, 3359, 3585, 3811, 4037, 4263, 4489, 4715, 4941, 5167, 5393, 5620, 5846, 6072, 6298, 6524, 6750, 6976, 7202, 7428, 7654, 7880, 8107, 8333, 8559, 8785, 9011, 9237, 9463, 9689, 9915, 10141, 10368, 10594, 10820, 11046, 11272, 11498, 11724, 11950, 12176, 12402, 12628, 12855, 13081, 13307, 13533, 13759, 13985, 14211, 14437, 14663, 14889, 15115, 15342, 15568, 15794, 16020, 16246, 16472, 16698, 16924, 17150, 17376, 17603, 17829]
    hit0 = 5
    cost0 = 5
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.38

class 技能15(被动技能):
    名称 = '二级加速'
    所在等级 = 35
    等级上限 = 11
    等级精通 = 1
    关联技能 = ['重型穿甲箭']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.25 + 0.05*self.等级


class 技能16(主动技能):
    名称 = '弩箭雨'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [338, 1882]
    无色消耗 = 1
    data0 = [0, 910, 1002, 1095, 1187, 1280, 1372, 1464, 1557, 1649, 1742, 1834, 1926, 2019, 2111, 2203, 2296, 2388, 2481, 2573, 2665, 2758, 2850, 2942, 3035, 3127, 3220, 3312, 3404, 3497, 3589, 3682, 3774, 3866, 3959, 4051, 4143, 4236, 4328, 4421, 4513, 4605, 4698, 4790, 4882, 4975, 5067, 5160, 5252, 5344, 5437, 5529, 5622, 5714, 5806, 5899, 5991, 6083, 6176, 6268, 6361, 6453, 6545, 6638, 6730, 6822, 6915, 7007, 7100, 7192, 7284]
    hit0 = 20
    cost0 = -1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.CDR *= 0.9
        self.hit0 = 5
        self.power0 = 1 + 3.46 + 0.64

class 技能17(主动技能):
    名称 = '法尔克：投网'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 25
    MP = [422, 2353]
    无色消耗 = 1
    data0 = [0, 17239, 18988, 20737, 22486, 24235, 25984, 27733, 29482, 31231, 32980, 34729, 36478, 38227, 39975, 41724, 43473, 45222, 46971, 48720, 50469, 52218, 53967, 55716, 57465, 59214, 60963, 62712, 64461, 66210, 67959, 69708, 71457, 73205, 74954, 76703, 78452, 80201, 81950, 83699, 85448, 87197, 88946, 90695, 92444, 94193, 95942, 97691, 99440, 101189, 102938, 104687, 106435, 108184, 109933, 111682, 113431, 115180, 116929, 118678, 120427, 122176, 123925, 125674, 127423, 129172, 130921, 132670, 134419, 136168, 137917]
    hit0 = 1
    cost0 = -3
    TP成长 = 0.1
    TP上限 = 5

class 技能18(主动技能):
    名称 = '三弓床弩'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 45
    MP = [585, 3262]
    无色消耗 = 1
    data0 = [0, 218, 241, 263, 285, 307, 330, 352, 374, 396, 418, 441, 463, 485, 507, 529, 552, 574, 596, 618, 641, 663, 685, 707, 729, 752, 774, 796, 818, 841, 863, 885, 907, 929, 952, 974, 996, 1018, 1040, 1063, 1085, 1107, 1129, 1152, 1174, 1196, 1218, 1240, 1263, 1285, 1307, 1329, 1351, 1374, 1396, 1418, 1440, 1463, 1485, 1507, 1529, 1551, 1574, 1596, 1618, 1640, 1662, 1685, 1707, 1729, 1751]
    hit0 = 1
    cost0 = 1
    data1 = [0, 218, 241, 263, 285, 307, 330, 352, 374, 396, 418, 441, 463, 485, 507, 529, 552, 574, 596, 618, 641, 663, 685, 707, 729, 752, 774, 796, 818, 841, 863, 885, 907, 929, 952, 974, 996, 1018, 1040, 1063, 1085, 1107, 1129, 1152, 1174, 1196, 1218, 1240, 1263, 1285, 1307, 1329, 1351, 1374, 1396, 1418, 1440, 1463, 1485, 1507, 1529, 1551, 1574, 1596, 1618, 1640, 1662, 1685, 1707, 1729, 1751]
    hit1 = 1
    cost1 = 1
    data2 = [0, 21460, 23637, 25814, 27991, 30168, 32345, 34522, 36699, 38876, 41053, 43231, 45408, 47585, 49762, 51939, 54116, 56293, 58470, 60647, 62824, 65002, 67179, 69356, 71533, 73710, 75887, 78064, 80241, 82418, 84596, 86773, 88950, 91127, 93304, 95481, 97658, 99835, 102012, 104189, 106367, 108544, 110721, 112898, 115075, 117252, 119429, 121606, 123783, 125960, 128138, 130315, 132492, 134669, 136846, 139023, 141200, 143377, 145554, 147731, 149909, 152086, 154263, 156440, 158617, 160794, 162971, 165148, 167325, 169503, 171680]
    hit2 = 1
    cost2 = 15
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.cost0 = self.cost1 = self.cost2 = 15
        self.power2 = 1 + 0.16 + 0.16

class 技能19(被动技能):
    名称 = '盯住他，法尔克！'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.02 + 0.02 * self.等级

class 技能20(主动技能):
    名称 = "联合作战：围猎"
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 145
    MP = [1670, 7095]
    无色消耗 = 5
    data0 = [0, 845, 1041, 1237, 1433, 1629, 1825, 2021, 2217, 2413, 2609, 2805, 3001, 3197, 3393, 3589, 3785, 3981, 4177, 4374, 4570, 4766, 4962, 5158, 5354, 5550, 5746, 5942, 6138, 6334, 6530, 6726, 6922, 7118, 7314, 7510, 7706, 7902, 8098, 8294, 8490, 8686, 8882, 9078, 9274, 9470, 9666, 9862, 10059, 10255, 10451]
    hit0 = 10
    cost0 = -1
    data1 = [0, 68477, 84356, 100234, 116113, 131992, 147871, 163750, 179628, 195507, 211386, 227265, 243144, 259022, 274901, 290780, 306659, 322538, 338416, 354295, 370174, 386053, 401932, 417811, 433689, 449568, 465447, 481326, 497204, 513083, 528962, 544841, 560720, 576598, 592477, 608356, 624235, 640114, 655993, 671871, 687750, 703629, 719508, 735387, 751265, 767144, 783023, 798902, 814781, 830659, 846538]
    hit1 = 1
    cost1 = 5

    def 等效百分比(self, **argv):
        if self.等级 >= 9:
            return super().等效百分比(**argv) * 1.1
        return super().等效百分比(**argv)

class 技能21(主动技能):
    名称 = '联合作战：地毯轰炸'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 30
    MP = [418, 1775]
    无色消耗 = 1
    data0 = [0, 112, 124, 135, 147, 158, 170, 181, 193, 204, 215, 227, 238, 250, 261, 273, 284, 296, 307, 318, 330, 341, 353, 364, 376, 387, 399, 410, 421, 433, 444, 456, 467, 479, 490, 502, 513, 525, 536, 547, 559, 570, 582, 593, 605, 616, 628, 639, 650, 662, 673]
    hit0 = 20 * 2
    cost0 = -1
    data1 = [0, 6094, 6712, 7331, 7949, 8567, 9185, 9804, 10422, 11040, 11658, 12277, 12895, 13513, 14132, 14750, 15368, 15986, 16605, 17223, 17841, 18460, 19078, 19696, 20314, 20933, 21551, 22169, 22787, 23406, 24024, 24642, 25261, 25879, 26497, 27115, 27734, 28352, 28970, 29589, 30207, 30825, 31443, 32062, 32680, 33298, 33917, 34535, 35153, 35771, 36390]
    hit1 = 5
    cost1 = 5
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit1 = 7
        self.power1 = 1.24 - 0.21
        self.hit0 = 20 * 4
        self.power0 = 0.5


class 技能22(主动技能):
    名称 = '法尔克：翼刃'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 50
    MP = [632, 2687]
    无色消耗 = 3
    data0 = [0, 56012, 61694, 67376, 73059, 78741, 84424, 90106, 95788, 101471, 107153, 112835, 118518, 124200, 129883, 135565, 141247, 146930, 152612, 158295, 163977, 169659, 175342, 181024, 186706, 192389, 198071, 203754, 209436, 215118, 220801, 226483, 232166, 237848, 243530, 249213, 254895, 260577, 266260, 271942, 277625, 283307, 288989, 294672, 300354, 306037, 311719, 317401, 323084, 328766, 334448]
    hit0 = 1
    TP成长 = 0.1
    TP上限 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.power0 = 1 + 0.19 * 1.72

class 技能23(被动技能):
    名称 = '装备升级！'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.18 + 0.02 * self.等级

class 技能24(主动技能):
    名称 = 'F.D.穿甲箭'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 40
    MP = [1170, 4969]
    无色消耗 = 3
    # 总消耗为5，data0判定消耗，data1也享受加成
    data0 = [0, 722, 795, 868, 942, 1015, 1088, 1161, 1235, 1308, 1381, 1454, 1528, 1601, 1674, 1747, 1821, 1894, 1967, 2041, 2114, 2187, 2260, 2334, 2407, 2480, 2553, 2627, 2700, 2773, 2846, 2920, 2993, 3066, 3140, 3213, 3286, 3359, 3433, 3506, 3579, 3652, 3726, 3799, 3872, 3946, 4019, 4092, 4165, 4239, 4312]
    hit0 = 1
    cost0 = 5
    data1 = [0, 7149, 7875, 8600, 9325, 10051, 10776, 11502, 12227, 12952, 13678, 14403, 15128, 15854, 16579, 17304, 18030, 18755, 19480, 20206, 20931, 21657, 22382, 23107, 23833, 24558, 25283, 26009, 26734, 27459, 28185, 28910, 29635, 30361, 31086, 31812, 32537, 33262, 33988, 34713, 35438, 36164, 36889, 37614, 38340, 39065, 39790, 40516, 41241, 41966, 42692]
    hit1 = 10
    cost1 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit1 = 15
        self.power1 = 1 - 0.21 + 0.12

class 技能25(主动技能):
    名称 = '法尔克：追踪型子母弹'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 45
    MP = [1462, 6210]
    无色消耗 = 5
    data0 = [0, 2933, 3231, 3528, 3826, 4124, 4421, 4719, 5016, 5314, 5612, 5909, 6207, 6505, 6802, 7100, 7397, 7695, 7993, 8290, 8588, 8885, 9183, 9481, 9778, 10076, 10374, 10671, 10969, 11266, 11564, 11862, 12159, 12457, 12754, 13052, 13350, 13647, 13945, 14243, 14540, 14838, 15135, 15433, 15731, 16028, 16326, 16624, 16921, 17219, 17516]
    hit0 = 15
    cost0 = -1
    data1 = [0, 11129, 12258, 13387, 14516, 15645, 16774, 17903, 19032, 20161, 21290, 22419, 23548, 24677, 25806, 26935, 28064, 29193, 30322, 31451, 32580, 33709, 34838, 35967, 37096, 38226, 39355, 40484, 41613, 42742, 43871, 45000, 46129, 47258, 48387, 49516, 50645, 51774, 52903, 54032, 55161, 56290, 57419, 58548, 59677, 60806, 61935, 63064, 64193, 65322, 66451]
    hit1 = 5

    是否有护石 = 1

    def 装备护石(self, char):
        self.CD = 22.5
        self.CDR *= 0.8
        self.hit0 = 10
        self.power0 = 1 - 0.15 + 0.05
        self.power1 = 1 - 0.44 + 0.04

class 技能26(主动技能):
    名称 = "完美瞄准"
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 180
    MP = [2780, 11814]
    无色消耗 = 10
    data0 = [0, 204228, 251586, 298943, 346301, 393658, 441015, 488373, 535730, 583088, 630445, 677802, 725160, 772517, 819875, 867232, 914589, 961947, 1009304, 1056662, 1104019, 1151376, 1198734, 1246091, 1293449, 1340806, 1388163, 1435521, 1482878, 1530235, 1577593, 1624950, 1672308, 1719665, 1767023, 1814380, 1861737, 1909095, 1956452, 2003809, 2051167, 2098524, 2145882, 2193239, 2240596, 2287954, 2335311, 2382669, 2430026, 2477384, 2524741]
    hit0 = 1
    cost0 = 5

class 技能27(被动技能):
    名称 = '老练猎人的勋章'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.18 + 0.02 * self.等级

class 技能28(主动技能):
    名称 = "联合作战：扭转战局"
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40
    CD = 60
    MP = [1636, 6951]
    无色消耗 = 7
    data0 = [0, 1514, 1667, 1821, 1974, 2128, 2282, 2435, 2589, 2742, 2896, 3050, 3203, 3357, 3510, 3664, 3818, 3971, 4125, 4278, 4432, 4586, 4739, 4893, 5046, 5200, 5354, 5507, 5661, 5814, 5968, 6122, 6275, 6429, 6583, 6736, 6890, 7043, 7197, 7351, 7504, 7658, 7811, 7965, 8119, 8272, 8426, 8579, 8733, 8887, 9040]
    hit0 = 10
    data1 = [0, 136268, 150092, 163916, 177741, 191565, 205389, 219214, 233038, 246862, 260687, 274511, 288335, 302160, 315984, 329808, 343633, 357457, 371281, 385106, 398930, 412754, 426578, 440403, 454227, 468051, 481876, 495700, 509524, 523349, 537173, 550997, 564822, 578646, 592470, 606295, 620119, 633943, 647768, 661592, 675416, 689241, 703065, 716889, 730713, 744538, 758362, 772187, 786011, 799835, 813659]
    hit1 = 1
    cost1 = 5

class 技能29(主动技能):
    名称 = "联合作战：终结战场"
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40
    CD = 290
    MP = [4538, 19283]
    无色消耗 = 15
    data0 = [0, 3205, 3949, 4692, 5435, 6179, 6922, 7665, 8409, 9152, 9895, 10639, 11382, 12125, 12869, 13612, 14355, 15099, 15842, 16585, 17329, 18072, 18816, 19559, 20302, 21046, 21789, 22532, 23276, 24019, 24762, 25506, 26249, 26992, 27736, 28479, 29222, 29966, 30709, 31452, 32196, 32939, 33683, 34426, 35169, 35913, 36656, 37399, 38143, 38886, 39629]
    hit0 = 15
    cost0 = -1
    data1 = [0, 432768, 533120, 633473, 733825, 834177, 934529, 1034881, 1135233, 1235585, 1335938, 1436290, 1536642, 1636994, 1737346, 1837698, 1938050, 2038403, 2138755, 2239107, 2339459, 2439811, 2540163, 2640515, 2740868, 2841220, 2941572, 3041924, 3142276, 3242628, 3342981, 3443333, 3543685, 3644037, 3744389, 3844742, 3945093, 4045445, 4145798, 4246150, 4346502, 4446854, 4547207, 4647558, 4747911, 4848263, 4948616, 5048968, 5149319, 5249671, 5350023]
    hit1 = 1
    cost1 = 5

class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'hunter'
        self.名称 = '聆风·猎人'
        self.角色 = '弓箭手'

        self.职业 = '猎人'
        self.武器选项 = ['重弩']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '重弩'
        self.防具类型 = '重甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.00

        super().__init__(equVersion)
